1. Field of the Invention
This invention is related to computer systems and, more particularly, to managing processor performance.
2. Description of the Related Art
Computing systems today frequently include various mechanisms for monitoring an operating environment. For example, the Intelligent Platform Management Interface (IPMI) specification defines a set of common interfaces to computer hardware and firmware which allows system administrators to monitor system health and manage the system. Typically, a system motherboard may include a special microcontroller, such as a baseboard management controller (BMC), which supports IPMI functionality. The BMC manages the interface between system management software and platform hardware. IPMI operates independently of the operating system (OS) and allows administrators to manage a system remotely even in the absence of the OS or the system management software. IPMI works by defining how the BMC extends management capabilities in the server system and operates independent of the main processor by monitoring on-board instrumentation, such as temperature sensors, fan speed, and voltages. Through the BMC, IPMI also allows administrators to control power to the server, and remotely access BIOS configuration and operating system console information.
Generally speaking, sensors are built into the computer system and are polled by the BMC for data. Various conditions or parameters such as temperature, cooling fan speeds, power mode, operating system (OS) status, may be monitored and reported. In response to detecting various conditions, the BMC may alert a system administrator via the network. The administrator may then communicate with the BMC to take some corrective action such as resetting or power cycling the system to get a hung OS running again.
Processors today often include the ability to operate at various performance levels using operating system directed techniques. Differing processor performance levels are often used as part of a power and/or thermal management scheme. For example, if a system is running on battery power, then a reduced processor performance level may be utilized in order to provide a longer run time. Similarly, if it is detected that a processor operating temperature exceeds some predetermined threshold, then a reduced processor performance level may be selected in order to reduce the operating temperature. Various processor performance levels may sometimes be referred to as “P-states”. Because operating systems are generally best suited for determining if a given processor is idle or being utilized (and to what extent), operating systems control the P-state values of a processor. Processors may, for example, comply with the Advanced Configuration and Power Interface (ACPI) specification as part of a power management scheme. Unfortunately, the operating system is ill equipped to understand other operating environment conditions.
For example, managing rack and blade system enclosure power and cooling requirements is essential to proper operation. However, the operating system on a single system in the enclosure can not understand that other systems are drawing excessive amounts of power during boot time and that its own P-state needs to be lowered before the power demand of the enclosure exceeds specified levels. Similarly, the operating system of a single system in the bottom of an enclosure may not be aware that systems higher in the enclosure are experiencing excessive heat problems and that its own P-state needs to be lowered to help resolve the problem (even though its own operating temperature is within normal parameters). Still further, the operating system is a complex mix of software components from many different providers. As a result, the operating system is not immune from crashing which can take down a P-state control daemon. If this happens there is currently no method of changing the P-state of the processor.
In view of the above, systems and methods are desired for managing processor performance.